KFbxAnimCurve Class Reference

#include <kfbxanimcurve.h>
Inheritance diagram for KFbxAnimCurve:
Inheritance graph
[legend]

List of all members.


Detailed Description

Definition at line 652 of file kfbxanimcurve.h.


Public Member Functions

Key management.
virtual void  ResizeKeyBuffer (int pKeyCount)=0
  Resize curve buffer to hold a certain number of key.
virtual void  KeyModifyBegin ()=0
  Call this function prior to modifying the keys of this curve.
virtual void  KeyModifyEnd ()=0
  Call this function after modification of the keys of this curve.
virtual void  KeyClear ()=0
  Remove all the keys and free buffer memory.
virtual int  KeyGetCount () const =0
  Get the number of keys.
virtual int  KeyAdd (KTime pTime, KFbxAnimCurveKeyBase &pKey, int *pLast=NULL)=0
  Add a key at given time.
virtual int  KeyAdd (KTime pTime, int *pLast=NULL)=0
  Add a key at given time.
virtual bool  KeySet (int pIndex, KFbxAnimCurveKeyBase &pKey)=0
  Set key at given index.
virtual bool  KeyRemove (int pIndex)=0
  Remove key at given index.
virtual int  KeyInsert (KTime pTime, int *pLast=NULL)=0
  Insert a key at given time.
virtual double  KeyFind (KTime pTime, int *pLast=NULL)=0
  Find key index for a given time.
virtual bool  KeyScaleValue (float pMultValue)=0
  Scale value of all keys.
virtual bool  KeyScaleValueAndTangent (float pMultValue)=0
  Scale value and tangent of all keys.
Key Manipulation
virtual void  KeySet (int pKeyIndex, KTime pTime, float pValue, KFbxAnimCurveDef::EInterpolationType pInterpolation=KFbxAnimCurveDef::eINTERPOLATION_CUBIC, KFbxAnimCurveDef::ETangentMode pTangentMode=KFbxAnimCurveDef::eTANGENT_AUTO, float pData0=0.0, float pData1=0.0, KFbxAnimCurveDef::EWeightedMode pTangentWeightMode=KFbxAnimCurveDef::eWEIGHTED_NONE, float pWeight0=KFbxAnimCurveDef::kDEFAULT_WEIGHT, float pWeight1=KFbxAnimCurveDef::kDEFAULT_WEIGHT, float pVelocity0=KFbxAnimCurveDef::kDEFAULT_VELOCITY, float pVelocity1=KFbxAnimCurveDef::kDEFAULT_VELOCITY)=0
  Set a key.
virtual void  KeySetTCB (int pKeyIndex, KTime pTime, float pValue, float pData0=0.0f, float pData1=0.0f, float pData2=0.0f)=0
  Set a key with cubic interpolation, TCB tangent mode.
virtual
KFbxAnimCurveDef::EInterpolationType 
KeyGetInterpolation (int pKeyIndex) const =0
  Get key interpolation type.
virtual void  KeySetInterpolation (int pKeyIndex, KFbxAnimCurveDef::EInterpolationType pInterpolation)=0
  Set key interpolation type.
virtual
KFbxAnimCurveDef::EConstantMode 
KeyGetConstantMode (int pKeyIndex) const =0
  Get key constant mode.
virtual
KFbxAnimCurveDef::ETangentMode 
KeyGetTangentMode (int pKeyIndex, bool pIncludeOverrides=false) const =0
  Get key tangent mode.
virtual void  KeySetConstantMode (int pKeyIndex, KFbxAnimCurveDef::EConstantMode pMode)=0
  Set key constant mode.
virtual void  KeySetTangentMode (int pKeyIndex, KFbxAnimCurveDef::ETangentMode pTangent)=0
  Set key tangent mode.
virtual KFbxAnimCurveKey  KeyGet (int pIndex) const =0
  Get key at given index.
virtual float  KeyGetValue (int pKeyIndex) const =0
  Get key value.
virtual void  KeySetValue (int pKeyIndex, float pValue)=0
  Set key value.
virtual void  KeyIncValue (int pKeyIndex, float pValue)=0
  Increment key value.
virtual void  KeyMultValue (int pKeyIndex, float pValue)=0
  Multiply key value.
virtual void  KeyMultTangent (int pKeyIndex, float pValue)=0
  Multiply key tangents.
virtual KTime  KeyGetTime (int pKeyIndex) const =0
  Get key time.
virtual void  KeySetTime (int pKeyIndex, KTime pTime)=0
  Set key time.
virtual void  KeySetBreak (int pKeyIndex, bool pVal)=0
  Set/Unset Break tangent Only valid for User and Auto keys.
virtual bool  KeyGetBreak (int pKeyIndex) const =0
  Get if tangent is break Only valid for User and Auto keys.
Key Tangent Management
virtual float  KeyGetLeftDerivative (int pIndex)=0
  Get the left derivative of a key.
virtual void  KeySetLeftDerivative (int pIndex, float pValue)=0
  Set the left derivative of a key.
virtual float  KeyGetLeftAuto (int pIndex, bool pApplyOvershootProtection=false)=0
  Get the left auto parametric of a key.
virtual KFCurveTangeantInfo  KeyGetLeftDerivativeInfo (int pIndex)=0
  Get the left derivative info of a key.
virtual void  KeySetLeftDerivativeInfo (kFCurveIndex pIndex, KFCurveTangeantInfo pValue, bool pForceDerivative=false)=0
  Set the left derivative info of a key.
virtual float  KeyGetRightDerivative (int pIndex)=0
  Get the right derivative of a key.
virtual void  KeySetRightDerivative (int pIndex, float pValue)=0
  Set the right derivative of a key.
virtual float  KeyGetRightAuto (int pIndex, bool pApplyOvershootProtection=false)=0
  Get the right auto parametric of a key.
virtual KFCurveTangeantInfo  KeyGetRightDerivativeInfo (int pIndex)=0
  Get the right derivative info of a key.
virtual void  KeySetRightDerivativeInfo (kFCurveIndex pIndex, KFCurveTangeantInfo pValue, bool pForceDerivative=false)=0
  Set the right derivative info of a key.
virtual bool  KeyIsLeftTangentWeighted (int pIndex) const =0
  Get the left tangent weight mode of a key.
virtual bool  KeyIsRightTangentWeighted (int pIndex) const =0
  Get the right tangent weight mode of a key.
virtual float  KeyGetLeftTangentWeight (int pIndex) const =0
  Get the weight value component of the left tangent of a key.
virtual float  KeyGetRightTangentWeight (int pIndex) const =0
  Get the weight value component of the right tangent of a key.
virtual void  KeySetLeftTangentWeight (int pIndex, float pWeight, bool pAdjustTan=false)=0
  Set the left tangent weight of a key.
virtual void  KeySetRightTangentWeight (int pIndex, float pWeight, bool pAdjustTan=false)=0
  Set the right tangent weight of a key.
virtual float  KeyGetLeftTangentVelocity (int pIndex) const =0
  Get the velocity value component of the left tangent of a key.
virtual float  KeyGetRightTangentVelocity (int pIndex) const =0
  Get the velocity value component of the right tangent of a key.
Evaluation and Analysis
virtual float  Evaluate (KTime pTime, int *pLast=NULL)=0
  Evaluate function curve value at a given time.
virtual float  EvaluateIndex (double pIndex)=0
  Evaluate function curve value at the given key index.
virtual float  EvaluateLeftDerivative (KTime pTime, int *pLast=NULL)=0
  Evaluate function left derivative at given time.
virtual float  EvaluateRightDerivative (KTime pTime, int *pLast=NULL)=0
  Evaluate function right derivative at given time.
Utility functions.
virtual bool  GetTimeInterval (KTime &pStart, KTime &pStop)=0
  Find out start and end time of the animation curve.
virtual KFCurve GetKFCurve ()=0
  Returns the pointer to KFCurve.
virtual void  CopyFrom (KFbxAnimCurve &pSource, bool pWithKeys=true)=0
  Copy curve content into current curve.

Static Public Member Functions

static KFbxAnimCurve Create (KFbxScene *pContainer, char const *pName)

Member Function Documentation

static KFbxAnimCurve* Create ( KFbxScene pContainer,
char const *  pName  
) [static]

virtual void ResizeKeyBuffer ( int  pKeyCount  )  [pure virtual]

Resize curve buffer to hold a certain number of key.

Parameters:
pKeyCount  Number of key the curve will eventually hold.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeyModifyBegin (  )  [pure virtual]

Call this function prior to modifying the keys of this curve.

Remarks:
Be sure to call KFbxAnimCurve::KeyModifyEnd() after modification of the keys are completed.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeyModifyEnd (  )  [pure virtual]

Call this function after modification of the keys of this curve.

Remarks:
You need to call KFbxAnimCurve::KeyModifyBegin() prior to modifying the keys.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeyClear (  )  [pure virtual]

Remove all the keys and free buffer memory.

Implements KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

virtual int KeyGetCount (  )  const [pure virtual]

Get the number of keys.

Returns:
Key count.

Implements KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

virtual int KeyAdd ( KTime  pTime,
KFbxAnimCurveKeyBase pKey,
int pLast = NULL  
) [pure virtual]

Add a key at given time.

Function KFbxAnimCurve::KeyInsert() SHOULD be used instead if the key is to be added in the curve and not at the end. This function does not respect the interpolation type and tangents of the neighboring keys. If there is already a key at the given time, the key is modified and no new key is added.

Parameters:
pTime  Time to add the key.
pKey  Key to add.
pLast  Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
Returns:
Index of the key at given time, no matter if it was added or already present.
Remarks:
Key value, interpolation type and tangent mode must be set explicitly afterwards.

Implements KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

Referenced by KFbxAnimCurveKFCurve::KeyAdd().

virtual int KeyAdd ( KTime  pTime,
int pLast = NULL  
) [pure virtual]

Add a key at given time.

Parameters:
pTime  Time to add the key.
pLast  Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.

Implemented in KFbxAnimCurveKFCurve.

virtual bool KeySet ( int  pIndex,
KFbxAnimCurveKeyBase pKey  
) [pure virtual]

Set key at given index.

Parameters:
pIndex  Index of where the key should be set
pKey  the key to set
Returns:
true if key time is superior to previous key and inferior to next key.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implements KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

virtual bool KeyRemove ( int  pIndex  )  [pure virtual]

Remove key at given index.

Parameters:
pIndex  Index of key to remove.
Returns:
true on success.

Implements KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

virtual int KeyInsert ( KTime  pTime,
int pLast = NULL  
) [pure virtual]

Insert a key at given time.

This function SHOULD be used instead of KFbxAnimCurve::KeyAdd() if the key is to be added in the curve and not at the end. It inserts the key in respect to the interpolation type and tangents of the neighboring keys. If there is already a key a the given time, the key is modified and no new key is added.

Parameters:
pTime  Time to insert the key.
pLast  Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
Returns:
Index of the key at given time, no matter if it was inserted or already present.
Remarks:
Key value must be set explicitly afterwards. The interpolation type and tangent mode are copied from the previous key.

Implemented in KFbxAnimCurveKFCurve.

virtual double KeyFind ( KTime  pTime,
int pLast = NULL  
) [pure virtual]

Find key index for a given time.

Parameters:
pTime  Time of the key looked for.
pLast  Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
Returns:
Key index. The integer part of the key index gives the index of the closest key with a smaller time. The decimals give the relative position of given time compared to previous and next key times. Returns -1 if function curve has no key.

Implemented in KFbxAnimCurveKFCurve.

virtual bool KeyScaleValue ( float  pMultValue  )  [pure virtual]

Scale value of all keys.

Parameters:
pMultValue  Scale applied on key values.
Returns:
true on success.

Implemented in KFbxAnimCurveKFCurve.

virtual bool KeyScaleValueAndTangent ( float  pMultValue  )  [pure virtual]

Scale value and tangent of all keys.

Parameters:
pMultValue  Scale applied on key values and tangents.
Returns:
true on success.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySet ( int  pKeyIndex,
KTime  pTime,
float  pValue,
KFbxAnimCurveDef::EInterpolationType  pInterpolation = KFbxAnimCurveDef::eINTERPOLATION_CUBIC,
KFbxAnimCurveDef::ETangentMode  pTangentMode = KFbxAnimCurveDef::eTANGENT_AUTO,
float  pData0 = 0.0,
float  pData1 = 0.0,
KFbxAnimCurveDef::EWeightedMode  pTangentWeightMode = KFbxAnimCurveDef::eWEIGHTED_NONE,
float  pWeight0 = KFbxAnimCurveDef::kDEFAULT_WEIGHT,
float  pWeight1 = KFbxAnimCurveDef::kDEFAULT_WEIGHT,
float  pVelocity0 = KFbxAnimCurveDef::kDEFAULT_VELOCITY,
float  pVelocity1 = KFbxAnimCurveDef::kDEFAULT_VELOCITY  
) [pure virtual]

Set a key.

Use SetTCB() to set a key with cubic interpolation and TCB tangent type.

Parameters:
pKeyIndex  Key index
pTime  Key time.
pValue  Key value.
pInterpolation  Key interpolation type.
pTangentMode  Key tangent mode (meaningful for cubic interpolation only).
pData0  Right slope.
pData1  Next left slope.
pTangentWeightMode  Weight mode.
pWeight0  Right slope weight.
pWeight1  Next left slope weight.
pVelocity0  Right velocity.
pVelocity1  Next left velocity.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetTCB ( int  pKeyIndex,
KTime  pTime,
float  pValue,
float  pData0 = 0.0f,
float  pData1 = 0.0f,
float  pData2 = 0.0f  
) [pure virtual]

Set a key with cubic interpolation, TCB tangent mode.

Parameters:
pKeyIndex  Key index
pTime  Key time.
pValue  Key value.
pData0  Tension.
pData1  Continuity.
pData2  Bias.

Implemented in KFbxAnimCurveKFCurve.

virtual KFbxAnimCurveDef::EInterpolationType KeyGetInterpolation ( int  pKeyIndex  )  const [pure virtual]

Get key interpolation type.

Parameters:
pKeyIndex  Key index
Returns:
Key interpolation type

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetInterpolation ( int  pKeyIndex,
KFbxAnimCurveDef::EInterpolationType  pInterpolation  
) [pure virtual]

Set key interpolation type.

Parameters:
pKeyIndex  Key index
pInterpolation  Key interpolation type.

Implemented in KFbxAnimCurveKFCurve.

virtual KFbxAnimCurveDef::EConstantMode KeyGetConstantMode ( int  pKeyIndex  )  const [pure virtual]

Get key constant mode.

Warning: This method is meaningful for constant interpolation only. Using this method for non constant interpolated key will return unpredicted value.

Parameters:
pKeyIndex  Key index
Returns:
Key constant mode.

Implemented in KFbxAnimCurveKFCurve.

virtual KFbxAnimCurveDef::ETangentMode KeyGetTangentMode ( int  pKeyIndex,
bool  pIncludeOverrides = false  
) const [pure virtual]

Get key tangent mode.

Parameters:
pKeyIndex 
pIncludeOverrides  Warning: This method is meaningful for cubic interpolation only. Using this method for non cubic interpolated key will return unpredicted value.
Returns:
Key tangent mode.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetConstantMode ( int  pKeyIndex,
KFbxAnimCurveDef::EConstantMode  pMode  
) [pure virtual]

Set key constant mode.

Warning: This method is meaningful for constant interpolation only.

Parameters:
pKeyIndex  Key index
pMode  Key constant mode.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetTangentMode ( int  pKeyIndex,
KFbxAnimCurveDef::ETangentMode  pTangent  
) [pure virtual]

Set key tangent mode.

Warning: This method is meaningful for cubic interpolation only.

Parameters:
pKeyIndex  Key index
pTangent  Key tangent mode.

Implemented in KFbxAnimCurveKFCurve.

virtual KFbxAnimCurveKey KeyGet ( int  pIndex  )  const [pure virtual]

Get key at given index.

Parameters:
pIndex  The index.
Returns:
Pointer to the key at the given index.
Remarks:
Result is undetermined if this curve has no key or index is out of bounds.

Implemented in KFbxAnimCurveKFCurve.

virtual float KeyGetValue ( int  pKeyIndex  )  const [pure virtual]

Get key value.

Parameters:
pKeyIndex  Key index.
Returns:
Value of key.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetValue ( int  pKeyIndex,
float  pValue  
) [pure virtual]

Set key value.

Parameters:
pKeyIndex  Key index.
pValue  The value to set.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeyIncValue ( int  pKeyIndex,
float  pValue  
) [pure virtual]

Increment key value.

Parameters:
pKeyIndex  Key index.
pValue  Value by which key value is incremented.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeyMultValue ( int  pKeyIndex,
float  pValue  
) [pure virtual]

Multiply key value.

Parameters:
pKeyIndex  Key index.
pValue  Value by which the key value is multiplied.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeyMultTangent ( int  pKeyIndex,
float  pValue  
) [pure virtual]

Multiply key tangents.

Note: When multiplying a key value, tangents must be multiplied to conserve the same topology.

Parameters:
pKeyIndex  Key index.
pValue  Value by which key tangents are multiplied.

Implemented in KFbxAnimCurveKFCurve.

virtual KTime KeyGetTime ( int  pKeyIndex  )  const [pure virtual]

Get key time.

Parameters:
pKeyIndex  Key index.
Returns:
Key time (time at which this key is occurring).

Reimplemented from KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetTime ( int  pKeyIndex,
KTime  pTime  
) [pure virtual]

Set key time.

Parameters:
pKeyIndex  Key index.
pTime  Key time (time at which this key is occurring).

Implements KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetBreak ( int  pKeyIndex,
bool  pVal  
) [pure virtual]

Set/Unset Break tangent Only valid for User and Auto keys.

Parameters:
pKeyIndex  Key index.
pVal  Break flag.

Implemented in KFbxAnimCurveKFCurve.

virtual bool KeyGetBreak ( int  pKeyIndex  )  const [pure virtual]

Get if tangent is break Only valid for User and Auto keys.

Parameters:
pKeyIndex  Key index.

Implemented in KFbxAnimCurveKFCurve.

virtual float KeyGetLeftDerivative ( int  pIndex  )  [pure virtual]

Get the left derivative of a key.

Parameters:
pIndex  Index of key.
Returns:
Left derivative.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetLeftDerivative ( int  pIndex,
float  pValue  
) [pure virtual]

Set the left derivative of a key.

Parameters:
pIndex  Index of key.
pValue  Left derivative.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds. This function is only relevant if previous key interpolation type is eINTERPOLATION_CUBIC and tangent mode is eTANGENT_USER, eTANGENT_BREAK or eTANGENT_AUTO.

Implemented in KFbxAnimCurveKFCurve.

virtual float KeyGetLeftAuto ( int  pIndex,
bool  pApplyOvershootProtection = false  
) [pure virtual]

Get the left auto parametric of a key.

Parameters:
pIndex  Index of key.
pApplyOvershootProtection  Clamp is taken into account.
Returns:
Left auto parametric.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implemented in KFbxAnimCurveKFCurve.

virtual KFCurveTangeantInfo KeyGetLeftDerivativeInfo ( int  pIndex  )  [pure virtual]

Get the left derivative info of a key.

Parameters:
pIndex  Index of key.
Returns:
Left derivative.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetLeftDerivativeInfo ( kFCurveIndex  pIndex,
KFCurveTangeantInfo  pValue,
bool  pForceDerivative = false  
) [pure virtual]

Set the left derivative info of a key.

Parameters:
pIndex  Index of key.
pValue  Left derivative.
pForceDerivative 
Remarks:
Result is undetermined if function curve has no key or index is out of bounds. This function is only relevant if previous key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK.

Implemented in KFbxAnimCurveKFCurve.

virtual float KeyGetRightDerivative ( int  pIndex  )  [pure virtual]

Get the right derivative of a key.

Parameters:
pIndex  Index of key.
Returns:
Right derivative.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetRightDerivative ( int  pIndex,
float  pValue  
) [pure virtual]

Set the right derivative of a key.

Parameters:
pIndex  Index of key.
pValue  Right derivative.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds. This function is only relevant if previous key interpolation type is eINTERPOLATION_CUBIC and tangent mode is eTANGENT_USER, eTANGENT_BREAK or eTANGENT_AUTO.

Implemented in KFbxAnimCurveKFCurve.

virtual float KeyGetRightAuto ( int  pIndex,
bool  pApplyOvershootProtection = false  
) [pure virtual]

Get the right auto parametric of a key.

Parameters:
pIndex  Index of key.
pApplyOvershootProtection  Clamp is taken into account.
Returns:
Right auto parametric.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implemented in KFbxAnimCurveKFCurve.

virtual KFCurveTangeantInfo KeyGetRightDerivativeInfo ( int  pIndex  )  [pure virtual]

Get the right derivative info of a key.

Parameters:
pIndex  Index of key.
Returns:
Right derivative info.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetRightDerivativeInfo ( kFCurveIndex  pIndex,
KFCurveTangeantInfo  pValue,
bool  pForceDerivative = false  
) [pure virtual]

Set the right derivative info of a key.

Parameters:
pIndex  Index of key.
pValue  Right derivative.
pForceDerivative 
Remarks:
Result is undetermined if function curve has no key or index is out of bounds. This function is only relevant if previous key interpolation type is KFCURVE_INTERPOLATION_CUBIC and tangent mode is KFCURVE_TANGEANT_USER or KFCURVE_TANGEANT_BREAK.

Implemented in KFbxAnimCurveKFCurve.

virtual bool KeyIsLeftTangentWeighted ( int  pIndex  )  const [pure virtual]

Get the left tangent weight mode of a key.

Parameters:
pIndex  Index of key.
Returns:
true if the key is weighted.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implemented in KFbxAnimCurveKFCurve.

virtual bool KeyIsRightTangentWeighted ( int  pIndex  )  const [pure virtual]

Get the right tangent weight mode of a key.

Parameters:
pIndex  Index of key.
Returns:
true if the key is weighted.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implemented in KFbxAnimCurveKFCurve.

virtual float KeyGetLeftTangentWeight ( int  pIndex  )  const [pure virtual]

Get the weight value component of the left tangent of a key.

Parameters:
pIndex  Index of key.
Returns:
Left tangent weight.
Remarks:
This function is only relevant if key interpolation type is eINTERPOLATION_CUBIC

Implemented in KFbxAnimCurveKFCurve.

virtual float KeyGetRightTangentWeight ( int  pIndex  )  const [pure virtual]

Get the weight value component of the right tangent of a key.

Parameters:
pIndex  Index of key.
Returns:
Right tangent weight.
Remarks:
This function is only relevant if key interpolation type is eINTERPOLATION_CUBIC

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetLeftTangentWeight ( int  pIndex,
float  pWeight,
bool  pAdjustTan = false  
) [pure virtual]

Set the left tangent weight of a key.

Parameters:
pIndex  Index of key.
pWeight  Weight value.
pAdjustTan  When set to true, recompute the tangent height to compensate for very small weights.
Remarks:
This function is only relevant if previous key interpolation type is eINTERPOLATION_CUBIC and tangent mode is eTANGENT_USER or eTANGENT_BREAK. The tangent is automatically set in weighted mode.

The pAdjustTan option will only produce correct results provided that the tangent has already been set before calling this function.

Implemented in KFbxAnimCurveKFCurve.

virtual void KeySetRightTangentWeight ( int  pIndex,
float  pWeight,
bool  pAdjustTan = false  
) [pure virtual]

Set the right tangent weight of a key.

Parameters:
pIndex  Index of key.
pWeight  Weight value.
pAdjustTan  When set to true, recompute the tangent height to compensate for very small weights.
Remarks:
This function is only relevant if key interpolation type is eINTERPOLATION_CUBIC and tangent mode is eTANGENT_USER or eTANGENT_BREAK. The tangent is automatically set in weighted mode.

The pAdjustTan option will only produce correct results provided that the tangent has already been set before calling this function.

Implemented in KFbxAnimCurveKFCurve.

virtual float KeyGetLeftTangentVelocity ( int  pIndex  )  const [pure virtual]

Get the velocity value component of the left tangent of a key.

Parameters:
pIndex  Index of key.
Returns:
Left tangent velocity.
Remarks:
This function is only relevant if key interpolation type is eINTERPOLATION_CUBIC.

Implemented in KFbxAnimCurveKFCurve.

virtual float KeyGetRightTangentVelocity ( int  pIndex  )  const [pure virtual]

Get the velocity value component of the right tangent of a key.

Parameters:
pIndex  Index of key.
Returns:
Right tangent velocity.
Remarks:
This function is only relevant if key interpolation type is eINTERPOLATION_CUBIC.

Implemented in KFbxAnimCurveKFCurve.

virtual float Evaluate ( KTime  pTime,
int pLast = NULL  
) [pure virtual]

Evaluate function curve value at a given time.

Parameters:
pTime  Time of evaluation. If time falls between two keys, function curve value is interpolated according to previous key interpolation type and tangent mode if relevant.
pLast  Index of the last processed key. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
Returns:
Evaluated curve value.
Remarks:
This function takes extrapolation into account.

Implements KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

virtual float EvaluateIndex ( double  pIndex  )  [pure virtual]

Evaluate function curve value at the given key index.

Parameters:
pIndex  Any value between 0 and KFbxAnimCurve::KeyGetCount() - 1. If this index falls between keys, the function curve value is interpolated according to previous key interpolation type and tangent mode if relevant.
Returns:
Evaluated curve value.
Remarks:
This function does not take extrapolation into account.

Implements KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

virtual float EvaluateLeftDerivative ( KTime  pTime,
int pLast = NULL  
) [pure virtual]

Evaluate function left derivative at given time.

Parameters:
pTime  Time of evaluation.
pLast  Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
Returns:
Left derivative at given time.
Remarks:
This function does not take extrapolation into account.

Implemented in KFbxAnimCurveKFCurve.

virtual float EvaluateRightDerivative ( KTime  pTime,
int pLast = NULL  
) [pure virtual]

Evaluate function right derivative at given time.

Parameters:
pTime  Time of evaluation.
pLast  Function curve index to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
Returns:
Right derivative at given time.
Remarks:
This function does not take extrapolation into account.

Implemented in KFbxAnimCurveKFCurve.

virtual bool GetTimeInterval ( KTime pStart,
KTime pStop  
) [pure virtual]

Find out start and end time of the animation curve.

This function retrieves the Curve's time span.

Parameters:
pStart  Reference to receive start time.
pStop  Reference to receive end time.
Returns:
true on success, false otherwise.

Reimplemented from KFbxAnimCurveBase.

Implemented in KFbxAnimCurveKFCurve.

virtual KFCurve* GetKFCurve (  )  [pure virtual]

Returns the pointer to KFCurve.

Returns:
Pointer to KFCurve.
Remarks:
Subject to be deprecated (2009-2010)

Implemented in KFbxAnimCurveKFCurve.

virtual void CopyFrom ( KFbxAnimCurve pSource,
bool  pWithKeys = true  
) [pure virtual]

Copy curve content into current curve.

Parameters:
pSource  Source curve.
pWithKeys  If true, clear keys in current function curve and copy keys from source function curve. If false, keys in current function curve are left as is.

Implemented in KFbxAnimCurveKFCurve.

KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve
KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve KFbxAnimCurve